An anycast network is a network providing a service which allows a sender to access the nearest of a group of receivers having a common address. The common address, in particular, the same anycast address for the group of receivers enables a sender to identify a plurality of receivers by providing only one address, namely an anycast address, instead of individually addressing each receiver. In contrast to a multicast system, wherein data communications are performed between a sender and all receivers sharing a common address, i.e. the same multicast address, data communications in an anycast network are performed between a sender and a particular receiver of a group of receivers sharing the same anycast address. In the context, data communications include any kind of data, such as alphanumerical, graphic, multimedia, audio, video, voice data, information, signals etc. which can be exchanged between systems, devices, network components etc. (e.g. computers, end user devices, hosts, servers, routers, modes).
In particular, data communications in an anycast network are performed between a sender and the nearest receiver of the group of receivers sharing the same anycast address. In this respect, the nearest receiver in relation to a sender is defined according to a measure of a distance employed by a routing protocol or routing system used for data communications in a respective network.
Since the routing protocol or routing system of a network which identifies the nearest receiver for accesses by a sender, the sender does not need to care about how to select the closest destination, i.e. the nearest receiver.
Usually, receivers in an anycast group are so-called replicas being able to support a same network service for requesting sender. Examples for such replicas are mirrored web servers. For accessing a desired network service, among a group of receivers sharing the same anycast address, i.e. anycast receivers, each thereof providing the desired network service, the nearest receiver is determined and respective data communications are performed between the nearest receiver and the requesting sender. Thus, accessing the nearest receiver enhances the network performance perceived by the requesting sender, saves network capacities such as network's bandwidth, and provides the desired network service.
In FIG. 1, the basic principle of an anycast network is illustrated. Both, members M1 and M2 are members of the same anycast group and share the same respective anycast address. In line with the measure of a distance employed for routing of data in the network, the distances between requesting senders S1 and S2 and all members of the anycast group are computed. Since the distance 2 calculated for the sender S1 in relation to the anycast group members is the smallest distance, data communications will be performed between the sender S1 and the member M1 acting as a receiver for the sender S1. In this manner, it is possible for example to direct Internet Protocol (IP) datagrams from the sender S1 towards the member M1. Accordingly, data communications are established between the sender S2 and the member M2 being a nearest receiver with respect to the sender S2, for example to direct IP datagrams from the sender S2 towards the member M2.
Anycast Addresses
According to the Internet Protocol version 6 (IPv6), special anycast addresses have been specified in addition to unicast addresses for individually addressing single receivers and multicast addresses for addressing all receivers sharing the same multicast address. Anycast addresses are allocated from the address space employed for unicast addresses, using any of the formats defined for unicast addresses. As a result, anycast addresses cannot be syntactically distinguished from unicast addresses. An anycast address identifies a set of interfaces which typically belong to different nodes of a network. Data, e.g. a data packet, communicated from a sender to an anycast address is delivered to one of the interfaces identified by the respective anycast address, in particular, to the nearest interface according to the measure of a distance employed for the network routing protocol or system.
In case, a unicast address is assigned to more than one interface, thus turning the unicast address into a respective anycast address, the nodes of the network to which the address is assigned must be explicitly configured to interpret the address as an anycast address. According to the IPv6, an anycast address must not be assigned to a host, but may be assigned to an IPv6 router, only.
Usually, for any assigned anycast address, an address prefix P is utilized which identifies a topological region in which all interfaces belonging to an anycast address reside. In the region identified by the address prefix P, each member of the respective anycast group is advertised as separate entry in a network routing protocol or system. Outside the region identified by the address prefix P, the anycast address may be aggregated into the routing advertisement for the address prefix P.
Anycast Host Registration
In order to join an anycast group, a host instructs its first hop router, i.e. the closest router in relation to the host for data communications via a network, to advertise the anycast address of the anycast group on its behalf. This can be achieved by adding a new message type to either the Internet Group Management Protocol (IGMP) or the Neighbor Discovery Protocol. Then, the first hop router advertises the anycast address according to an anycast routing protocol employed for the domain including the host.
Anycast Routing
Each anycast group is confined to a particular topological region with which it shares a common address prefix. Within the topological region identified by the shared address prefix, each member of the anycast group is advertised as a separate entry in the employed unicast routing protocol or system. The principle of anycast routing within a topological region identified by an address prefix shared by an anycast group is illustrated in FIG. 2.
As can be derived from the table in FIG. 2, there are multiple paths to the anycast address. In case, multiple paths exist to a destination address prefix, a routing table look up of the router will return multiple next hops. The selection of the next hop router to be used for data communications, e.g. a particular data packet, depends on the implemented routing protocol or system. Further, the path selected for data communications can also be effected by the type of data communications to be performed. For example in case of the Internet Protocol standard, the Type Of Service (TOS) field in the IP header of a data packet can be used to define a data communications path. Thus, a TOS designation of a data packet would help the router to chose an appropriate communication path for the given data packet.
The selection of an appropriate path is accomplished on the basis on a determination of the distances to the destination defined by the address prefix according to a measure of distance of the respective routing protocol or system. In case of the Internet Protocol standard, for example, the OSPF knows the distance related to the corresponding matrix as identified in the TOS field of a data packet to the destination, i.e. the hop count. As a result, for an anycast routing it is possible to select the nearest next hop on the basis of the employed matrix. In this respect, it is not necessary to analyze the whole IP address of a given data packet. In FIG. 2, this in indicated by the destination address Mx wherein only the prefix “M” is analyzed.
For an anycast routing outside the topological region identified by the shared address prefix, the anycast address may be aggregerated into the routing advertisement for the shared address prefix. This principle is illustrated in FIG. 3.
The destination address Ax in FIG. 3 denotes that only the shared address prefix is utilized in order to determine that data communications are to be routed to the corresponding domain. Since the anycast address for the anycast group shares the address prefix with network domain A, network domain B cannot aggregerate the anycast address in its address prefix. Therefore, network domain B should advertise the anycast address as a separate entry covering both anycast members A4 and A5. This is indicated in FIG. 3 by the destination address Ax being based on the address prefix for domain A and destination address Ax′ containing the complete anycast address. The routing for data communications within the network domains A and B is performed as described before with reference to FIG. 2.
Strict and Loose Routing
According to the Internet Protocol version 4 (IPv4) and the Internet Protocol version 6 (IPv6), the following options for routing data communications from a source (e.g. sender, requesting system) to a destination (e.g. receiver, accessed system) have been defined as part of the IP data packet header:    Strict Routing
This option defines a complete data communications path from a source to a destination by means of a sequence of IP addresses. Data to be communicated between the source and the destination is required to exactly follow the defined path.    Loose Routing
This option specifies a number of routers and an order thereof. Data to be communicated from a source to a destination is required to traverse the specified routers in the specified order, but is allowed to be communicated via other routers on its way from the source to the destination.
Problems
Existing solutions for networks being capable of anycast routing are restricted to the selection of a single nearest receiver for data communications with an accessing sender. In case a sender intends to access more than one receiver, existing anycast networks do no provide such a service. A situation for which accesses to more than one receiver are desired is, for example, a network user wanting to access a number of nearest network servers in order to negotiate for the best network service conditions. A further example is a network user wishing to contact a number of nearest restaurants by accessing the network servers thereof in order to check e.g. meals, prices, available seats, etc. or wishing to access a number of nearest emergency service providers in order to ensure that at least one is able to assist (note for the latter examples, sufficient information for the accessing user is only provided in case there is a geographical relationship between the restaurants and the emergency service providers and the corresponding servers).
In conventional networks, accesses to more than one receiver can be accomplished by accessing a number of receivers by individually addressing the same on the basis of a unicast routing or by accessing a group of receivers by commonly addressing the same on the basis of a shared multicasting address. Such a multiple unicast routing requires that an accessing user must know each individual network address of the desired receivers and individually perform accesses thereto. This is a time consuming procedure which cannot lead to the desired information for a user in a case, for example, he/she is not provided the respective network addresses and/or information concerning distances to the accessed servers. With respect to the above given example concerning a negotiation for the best network service conditions by accessing a number of nearest servers, such a multiple unicast routing is also not appropriate since no information indicative of distances to receivers is provided and/or available. Accesses on the basis of a multicast routing can result in a number of contacted receivers being too high in view of the demands and desired information of a requesting sender/user. Further, with multicast routing it is not possible to access a desired number of receivers and, in particular, a desired number of nearest receivers, since all receivers being a member of the respective multicasting group are addressed together.
Furthermore, a second attempt, e.g. by a multiple unicast routing, to access/contact receivers, the number thereof being higher compared to the number of receivers specified in a preceding, first attempt, would unnecessarily return the results from the first attempt again. This repetition of data communications with respect to the result of the first attempt unnecessarily utilizes network resources in case the requesting network user is not interested in being provided the first attempt results again.